// 这是一个父进程调用kill函数向子进程发送SIGABRT信号，让子进程退出的实例，
// 首先使用fork函数创建一个子进程，使子进程休眠10s
// 然后在父进程中调用kill函数向子进程发送一个SIGABRT信号，子进程收到该信号后退出
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
#include <unistd.h>

int main(int argc, char *argv[]){
	
	// 创建一个pid标识符
	pid_t pid;

	pid = fork();

	if(pid < 0){
		printf("创建子进程失败!\n");
		exit(1);
	}else if(pid == 0){
		printf("此时为子进程!\n");
		
		// 睡眠10秒
		sleep(10);

		// 等待接受SIGABRT信号
		printf("接受父进程发送的SIGABRT信号失败!\n");
		return ;

	}else{
		printf("此时为父进程!\n");
		//sleep(1);
		printf("父进程调用kill函数向子进程%d发送SIGABRT信号:::%d\n",pid,getpid());
		// 向子进程中发送SIGABRT信号
		printf("正在向子进程中发送SIGABRT信号...\n");

		sleep(1);

		if( kill(pid, SIGABRT) == -1){
			printf("调用kill函数失败!\n");
		}
	}

	return 0;
}
